package(
    default_visibility = ["//visibility:public"],
)

licenses(["notice"])

exports_files(["LICENSE"])

filegroup(
    name = "spirv_core_grammar_1.0",
    srcs = ["include/spirv/1.0/spirv.core.grammar.json"],
)

filegroup(
    name = "spirv_glsl_grammar_1.0",
    srcs = ["include/spirv/1.0/extinst.glsl.std.450.grammar.json"],
)

filegroup(
    name = "spirv_opencl_grammar_1.0",
    srcs = ["include/spirv/1.0/extinst.opencl.std.100.grammar.json"],
)

filegroup(
    name = "spirv_core_grammar_1.1",
    srcs = ["include/spirv/1.1/spirv.core.grammar.json"],
)

filegroup(
    name = "spirv_glsl_grammar_1.1",
    srcs = ["include/spirv/1.1/extinst.glsl.std.450.grammar.json"],
)

filegroup(
    name = "spirv_opencl_grammar_1.1",
    srcs = ["include/spirv/1.1/extinst.opencl.std.100.grammar.json"],
)

filegroup(
    name = "spirv_core_grammar_1.2",
    srcs = ["include/spirv/1.2/spirv.core.grammar.json"],
)

filegroup(
    name = "spirv_glsl_grammar_1.2",
    srcs = ["include/spirv/1.2/extinst.glsl.std.450.grammar.json"],
)

filegroup(
    name = "spirv_opencl_grammar_1.2",
    srcs = ["include/spirv/1.2/extinst.opencl.std.100.grammar.json"],
)

filegroup(
    name = "spirv_core_grammar_unified1",
    srcs = ["include/spirv/unified1/spirv.core.grammar.json"],
)

filegroup(
    name = "spirv_glsl_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.glsl.std.450.grammar.json"],
)

filegroup(
    name = "spirv_opencl_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.opencl.std.100.grammar.json"],
)

filegroup(
    name = "spirv_xml_registry",
    srcs = ["include/spirv/spir-v.xml"],
)

filegroup(
    name = "spirv_ext_inst_debuginfo_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.debuginfo.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_nonsemantic_clspvreflection_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_opencl_debuginfo_100_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_nonsemantic_shader_debuginfo_100_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_spv_amd_gcn_shader_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_spv_amd_shader_ballot_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_spv_amd_shader_explicit_vertex_parameter_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json"],
)

filegroup(
    name = "spirv_ext_inst_spv_amd_shader_trinary_minmax_grammar_unified1",
    srcs = ["include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json"],
)

cc_library(
    name = "spirv_common_headers",
    hdrs = [
        "include/spirv/1.0/GLSL.std.450.h",
        "include/spirv/1.0/OpenCL.std.h",
        "include/spirv/1.1/GLSL.std.450.h",
        "include/spirv/1.1/OpenCL.std.h",
        "include/spirv/1.2/GLSL.std.450.h",
        "include/spirv/1.2/OpenCL.std.h",
        "include/spirv/unified1/GLSL.std.450.h",
        "include/spirv/unified1/NonSemanticClspvReflection.h",
        "include/spirv/unified1/NonSemanticDebugPrintf.h",
        "include/spirv/unified1/OpenCL.std.h",
    ],
    includes = ["include"],
)

cc_library(
    name = "spirv_c_headers",
    hdrs = [
        "include/spirv/1.0/spirv.h",
        "include/spirv/1.1/spirv.h",
        "include/spirv/1.2/spirv.h",
        "include/spirv/unified1/spirv.h",
    ],
    includes = ["include"],
    deps = [":spirv_common_headers"],
)

cc_library(
    name = "spirv_cpp_headers",
    hdrs = [
        "include/spirv/1.0/spirv.hpp",
        "include/spirv/1.1/spirv.hpp",
        "include/spirv/1.2/spirv.hpp",
        "include/spirv/unified1/spirv.hpp",
    ],
    includes = ["include"],
    deps = [":spirv_common_headers"],
)

cc_library(
    name = "spirv_cpp11_headers",
    hdrs = [
        "include/spirv/1.0/spirv.hpp11",
        "include/spirv/1.1/spirv.hpp11",
        "include/spirv/1.2/spirv.hpp11",
        "include/spirv/unified1/spirv.hpp11",
    ],
    includes = ["include"],
    deps = [":spirv_common_headers"],
)

